在一些框架中使用了PHP
的Yield/Generator
来实现半自动化的协程。实际使用中,开发者需要在涉及协程逻辑的函数调用前增加yield
关键字。这带来了额外的学习成本和编程心智负担,非常容易犯错。Yield/Generator
代码风格与传统的同步风格代码存在冲突。无法复用已有代码。
Swoole4
协程是全自动化的协程,开发者无需添加任何关键字,底层自动实现协程的切换和调度。Swoole4
协程风格与传统的同步风格代码是一致的,因此可以复用已有代码。
在4.1.0
版本中,底层增加了php_stream
兼容层,可一键地将redis
、mysqli
、pdo
和其他tcp socket stream
代码协程化。